package src.com.foreknow.demo9;

import java.util.Scanner;

public class Game {
    //初始化Person以及Computer
    Person person ;
    Computer computer ;
    int count;//对战次数

    public void init(){
        person = new Person();
        computer = new Computer();
    }

    /**
     * 定义开始游戏的方法
     */
    public  void  start(){
        //1.调用方法初始化对象
        Game game = new Game();
        Scanner input = new Scanner(System.in);
        //2.输出开始游戏的信息
        System.out.println("-------欢迎进入游戏世界-------");
        System.out.println("*****************************");
        System.out.println("**********猜拳，开始*********");
        System.out.println("*****************************");
        System.out.println("******1.剪刀 2.石头 3.布*****");
        //3.让用户选择对方的角色（1，2，3）
        System.out.println("请选择对方角色：(1.刘备 2.孙权 3.曹操)");
        int choice = input.nextInt();
        switch (choice){
            case 1:
                System.out.println("刘备");
                break;
            case 2:
                System.out.println("孙权");
                break;
            case 3:
                System.out.println("曹操");
                break;
        }
        if (choice==1){
            computer.setName("刘备");
        }else if (choice==2){
            computer.setName("孙权");
        }else if (choice==3){
            computer.setName("曹操");
        }

        System.out.println("请输入你的姓名：");
        String name = input.next();

        //4.判断，如果用户选择1 就要将1所以对应的角色赋值给Computer对象中的name属性
        //5.输出“您选择了谁（Computer，name属性）”进行对战
        System.out.println("您选择了："+computer.getName()+"进行对战");

        //开始游戏
        //6.提示用户是否开始游戏并能够接受用户的输入
        System.out.println("是否开始游戏（y/n）");
        String choice1 = input.next();
        //7.如果用户选择了y{
        //           出拳
        //     调用Person对象中的showFirst方法
        //     调用Computer对象中的showFirst方法
        //     裁决是赢了还是输了（要根据以上方法返回的结果，3种 赢，输，平局）
        // }
        while (true) {
            if (choice1.equals("y")) {
                int pF = person.showFirst();
                int cF = computer.showFirst();
                if (pF == 1 && cF == 3 || pF == 2 && cF == 1 ||
                        pF == 3 && cF == 2) {
                    System.out.println("你赢了");
                    System.out.println("是否开始下一轮（y/n）");
                    String choice2 = input.next();
                    if (choice1.equals("y")){
                        return ;
                    }
                } else if (pF == cF) {
                    System.out.println("平局");
                    System.out.println("是否开始下一轮（y/n）");
                    String choice2 = input.next();
                    if (choice1.equals("y")){
                        return;
                    }

                } else if (cF == 1 && pF == 3 || cF == 2 && pF == 1 ||
                        cF == 3 && pF == 2) {
                    System.out.println("你输了");
                    System.out.println("是否开始下一轮（y/n）");
                    String choice2 = input.next();
                    if (choice1.equals("y")){
                        return;
                    }
                }

            }
        }

        //8.使用循环来决定是否开始下一局

        //9.显示对战的结果，可以定义一个方法 showResult（）{
        //      输出谁（Computer对象中的name属性）VS 谁（Person对象中的name属性）对象
        //      输出对战次数count
        //      调用calcResult()来计算比赛结果 要根据犯法的返回值来判断
        //      如果calcResult()返回的结果为1 输出平手 结果为2 输出赢了 结果3 输出败了
        // }
        //10.定义一个最终比赛结果的方法calcResult（）{
        //   根据成绩score来判断，如果用户的成绩等于电脑的成绩 return 1（平局）
        //   否则如果用户成绩大于电脑成绩， return 2（用户赢了）
        //   否则 return 3 电脑赢
        //}
        //11.使用循环 do while(1-10)
        //

    }

    public static void main(String[] args) {
        Game game = new Game();
        game.init();
        game.start();

    }
}












